package com.siashan.unipay4j.wx.model.refund;

import com.alibaba.fastjson.annotation.JSONField;
import com.siashan.unipay4j.wx.model.PayGoodsDetail;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>V3 优惠功能</p>
 *
 * <p>享受优惠时返回该字段</p>
 * @author siashan
 * @since v2.0.1
 */
@Data
@Accessors(chain = true)
public class RefundPromotionDetail {
    /**
     * 券ID
     *
     * 券或者立减优惠id
     */
    @JSONField(name = "promotion_id")
    private String promotionId;
    /**
     * 优惠范围
     *
     * @apiNote GLOBAL：全场代金券
     *          SINGLE：单品优惠
     * <see>PromotionScopeEnum</see>
     */
    private String scope;
    /**
     * 优惠类型
     *
     * @apiNote 枚举值：
     * COUPON：代金券，需要走结算资金的充值型代金券
     * DISCOUNT：优惠券，不走结算资金的免充值型优惠券
     * 示例值：DISCOUNT
     */
    private String type;
    /**
     * 优惠券面额
     *
     * 用户享受优惠的金额（优惠券面额=微信出资金额+商家出资金额+其他出资方金额 ），单位为分
     */
    private int amount;


    /**
     * 优惠退款金额
     *
     * @apiNote 优惠退款金额<=退款金额，退款金额-代金券或立减优惠退款金额为用户支付的现金，说明详见代金券或立减优惠，单位为分
     */
    @JSONField(name = "refund_amount")
    private int refundAmount;



    /**
     * 商品列表
     *
     * 优惠商品发生退款时返回商品信息
     */
    @JSONField(name = "goods_detail")
    private RefundGoodsDetail[] goodsDetail;
}
